package com.lanchetech.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 身份权益表
 */
@ApiModel(value = "身份权益表")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Identity implements Serializable {
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    private Long userId;

    /**
     * 单店编号 0 为无店
     */
    @ApiModelProperty(value = "单店编号 0 为无店")
    private Long singleShop;

    /**
     * 用户等级
     */
    @ApiModelProperty(value = "用户等级")
    private Integer level;

    /**
     * 历史超级会员等级
     */
    @ApiModelProperty(value = "历史超级会员等级")
    private Integer memberLevel;

    /**
     * 历史合伙人等级
     */
    @ApiModelProperty(value = "历史合伙人等级")
    private Integer partnerLevel;

    /**
     * 历史联创等级
     */
    @ApiModelProperty(value = "历史联创等级")
    private Integer shareholderLevel;

    /**
     * 董事级别
     */
    @ApiModelProperty(value = "董事级别")
    private Integer memberL4Grade;

    /**
     * 合伙人主席级别
     */
    @ApiModelProperty(value = "合伙人主席级别")
    private Integer partnerL4Grade;

    /**
     * 主席级别
     */
    @ApiModelProperty(value = "主席级别")
    private Integer shareholderL4Grade;

    /**
     * 邀请的超级会员的数量
     */
    @ApiModelProperty(value = "邀请的超级会员的数量")
    private Long memberL1Number;

    /**
     * 邀请的副总裁的数量
     */
    @ApiModelProperty(value = "邀请的副总裁的数量")
    private Long memberL2Number;

    /**
     * 邀请的总裁的数量
     */
    @ApiModelProperty(value = "邀请的总裁的数量")
    private Long memberL3Number;

    /**
     * 邀请的合伙人的数量
     */
    @ApiModelProperty(value = "邀请的合伙人的数量")
    private Long partnerL1Number;

    /**
     * 邀请的会长数量
     */
    @ApiModelProperty(value = "邀请的会长数量")
    private Long partnerL2Number;

    /**
     * 邀请的合伙人副主席数量
     */
    @ApiModelProperty(value = "邀请的合伙人副主席数量")
    private Long partnerL3Number;

    /**
     * 邀请的联创数量
     */
    @ApiModelProperty(value = "邀请的联创数量")
    private Long shareholderL1Number;

    /**
     * 邀请的股东数量
     */
    @ApiModelProperty(value = "邀请的股东数量")
    private Long shareholderL2Number;

    /**
     * 邀请的副主席数量
     */
    @ApiModelProperty(value = "邀请的副主席数量")
    private Long shareholderL3Number;

    /**
     * 身份类型 0 超级会员 1 合伙人 2 联创
     */
    @ApiModelProperty(value = "身份类型 0 超级会员 1 合伙人 2 联创")
    private Byte type;

    /**
     * 是否是购买者 0 赠送者 1 购买者
     */
    @ApiModelProperty(value = "是否是购买者 0 赠送者 1 购买者")
    private Byte isBuyer;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updateAt;

    /**
     * 是否是联合创始人 0 非联合创始人 1 是联合创始人
     */
    @ApiModelProperty(value = "是否是联合创始人 0 非联合创始人 1 是联合创始人")
    private Byte director;

    /**
     * 讲师等级 0 非讲师 1 资深讲师 2 金牌导师 3 商学院院长
     */
    @ApiModelProperty(value = "讲师等级 0 非讲师 1 资深讲师 2 金牌导师 3 商学院院长")
    private Byte teacherLevel;

    /**
     * 主播 0 非主播 1 素人主播 2 达人主播 3 官方主播
     */
    @ApiModelProperty(value = "主播 0 非主播 1 素人主播 2 达人主播 3 官方主播")
    private Byte anchorLevel;

    /**
     * 成为主播的时间
     */
    @ApiModelProperty(value = "成为主播的时间")
    private Date anchorTime;

    /**
     * 赠送合伙人账号名额
     */
    @ApiModelProperty(value = "赠送合伙人账号名额")
    private Integer partnerAccount;

    /**
     * 赠送区域账号名额
     */
    @ApiModelProperty(value = "赠送区域账号名额")
    private Integer areaAccount;

    /**
     * 省份行政区划代码
     */
    @ApiModelProperty(value = "省份行政区划代码")
    private Long province;

    /**
     * 城市行政区划代码
     */
    @ApiModelProperty(value = "城市行政区划代码")
    private Long city;

    /**
     * 县(区)行政区划代码
     */
    @ApiModelProperty(value = "县(区)行政区划代码")
    private Long area;

    /**
     * 合伙人过期时间
     */
    @ApiModelProperty(value = "合伙人过期时间")
    private Date partnerExpireTime;

    /**
     * 好物推荐官等级 0 非好物推荐官 1 好物推荐官v1 2 好物推荐官v2 3 好物推荐官v3
     */
    @ApiModelProperty(value = "好物推荐官等级 0 非好物推荐官 1 好物推荐官v1 2 好物推荐官v2 3 好物推荐官v3")
    private Byte recommendLevel;

    /**
     * 会员过期时间
     */
    @ApiModelProperty(value = "会员过期时间")
    private Date memberExpireTime;

    /**
     * 初始会员级别 0 初级会员 1 高级会员
     */
    @ApiModelProperty(value = "初始会员级别 0 初级会员 1 高级会员 2 会员代理")
    private Byte memberState;

    /**
     * 赠送会员账号名额
     */
    @ApiModelProperty(value = "赠送会员账号名额")
    private Integer memberAccount;

    /**
     * 已得到静态分红
     */
    @ApiModelProperty(value = "已得到静态分红")
    private BigDecimal staticDividend;

    /**
     * 市场补贴生效时间
     */
    @ApiModelProperty(value = "市场补贴生效时间")
    private Date dividendEffectTime;

    /**
     * 会员分红生效时间
     */
    @ApiModelProperty(value = "会员分红生效时间")
    private Date memberEffectTime;

    /**
     * 经理分红生效时间
     */
    @ApiModelProperty(value = "经理分红生效时间")
    private Date memberL3EffectTime;

    /**
     * 总监分红生效时间
     */
    @ApiModelProperty(value = "总监分红生效时间")
    private Date memberL4EffectTime;

    /**
     * 运营中心类型 0 运营中心 1 分公司
     */
    @ApiModelProperty(value = "运营中心类型 0 运营中心 1 分公司")
    private Byte shareholderState;

    /**
     * 副总裁分红生效时间
     */
    @ApiModelProperty(value = "副总裁分红生效时间")
    private Date shareholderL2EffectTime;

    /**
     * 总裁分红生效时间
     */
    @ApiModelProperty(value = "总裁分红生效时间")
    private Date shareholderL3EffectTime;

    /**
     * 董事分红生效时间
     */
    @ApiModelProperty(value = "董事分红生效时间")
    private Date shareholderL4EffectTime;

    /**
     * 累积进货总套数
     */
    @ApiModelProperty(value = "累积进货总套数")
    private Long sellCount;

    /**
     * 待释放的福利补贴
     */
    @ApiModelProperty(value = "待释放的福利补贴")
    private BigDecimal welfare;

    /**
     * VIP会员佣金机会次数
     */
    @ApiModelProperty(value = "VIP会员佣金机会次数")
    private Long commissionCount;

    /**
     * 邀请新人数量
     */
    @ApiModelProperty(value = "邀请新人数量")
    private Integer inviteCount;

    /**
     * 邀请奖励等级
     */
    @ApiModelProperty(value = "邀请奖励等级")
    private Integer inviteRewardLevel;

    /**
     * 是否购买过新人专区商品 0 未购买 1 已购买
     */
    @ApiModelProperty(value = "是否购买过新人专区商品 0 未购买 1 已购买")
    private Byte newZoneBuy;

    private static final long serialVersionUID = 1L;
}